#include "Thread.hpp"
#include <unistd.h>
using namespace ThreadModlue;

// 传递对象
class ThreadData
{
public:
    pthread_t tid;
    std::string name;
};

void Count(ThreadData td)
{
    while (true)
    {
        std::cout << "我是一个新线程" << std::endl;
        sleep(1);
    }
}

int main()
{
    // 以面向对象的方式封装线程
    // Lambda表达式
    Thread t([](){
        while(true)
        {
            char name[64];
            pthread_getname_np(pthread_self(), name, sizeof(name)); // 获取线程名
            std::cout << "我是一个新线程: " << name << std::endl;
            sleep(1);
        }
    });
    t.Start();

    t.Detach();
    sleep(5);

    t.Stop();
    sleep(5);

    t.Join();
    return 0;
}

